package net.service;

/**
 * 可配置的服务实现类
 * 
 * @author qilin
 * 
 */
public abstract class AbstractConfigableServiceImpl {

	/**
	 * 定义文件
	 */
	private String configFile;

	/**
	 * 定义文件加载方式
	 */
	private String loadType = CLASSPATH_TYPE;

	/**
	 * 类路径加载方式
	 */
	public static final String CLASSPATH_TYPE = "classpath";

	/**
	 * 文件加载方式
	 */
	public static final String FILESYSTEM_TYPE = "filepath";

	public AbstractConfigableServiceImpl() {
		super();
	}

	/**
	 * 初始化服务
	 * 
	 * @throws Exception
	 */
	public abstract void initializeService() throws Exception;

	/**
	 * 设置配置文件
	 * 
	 * @param configFile
	 */
	public void setConfigFile(String configFile) {
		this.configFile = configFile;
	}

	/**
	 * 设置读取配置文件方式
	 * 
	 * @param loadType
	 */
	public void setLoadType(String loadType) {
		this.loadType = loadType;
	}

	/**
	 * 取得配置文件
	 * 
	 * @return
	 */
	public String getConfigFile() {
		return configFile;
	}

	/**
	 * 取得读取配置文件方式
	 * 
	 * @return "classpath" 或者 "filepath"
	 */
	public String getLoadType() {
		return loadType;
	}

}
